package com.yu.yupicture.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yu.yupicture.model.domain.dto.space.SpaceAddRequest;
import com.yu.yupicture.model.domain.dto.space.SpaceEditRequest;
import com.yu.yupicture.model.domain.dto.space.SpaceQueryRequest;
import com.yu.yupicture.model.domain.dto.space.SpaceUpdateRequest;
import com.yu.yupicture.model.domain.dto.spaceUser.SpaceUserAddRequest;
import com.yu.yupicture.model.domain.dto.spaceUser.SpaceUserEditRequest;
import com.yu.yupicture.model.domain.entry.Space;
import com.yu.yupicture.model.domain.entry.SpaceUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yu.yupicture.model.domain.entry.User;
import com.yu.yupicture.model.domain.vo.SpaceUserVO;

import java.util.List;

/**
* @author Li Shuokang
* @description 针对表【space_user(空间用户关联)】的数据库操作Service
* @createDate 2025-08-06 12:09:43
*/
public interface SpaceUserService extends IService<SpaceUser> {

    /**
     * 根据id删除成员 -管理员
     */
    boolean deleteSpaceUserById(Long id, User loginUser);

   /**
     * 更新空间用户信息 -管理员
     */
    boolean updateSpaceUser(SpaceUserEditRequest spaceUserEditRequest,User loginUser);

    /**
     * 新增成员 -管理员
     */

    void addSpaceUser(SpaceUserAddRequest spaceUserAddRequest, User loginUser);

    /**
     * 校验用户，空间是否存在
     */
    void checkUserAndSpace(SpaceUser spaceUser ,boolean add);

    /**
     * 查询空间下的成员
     */
    List<SpaceUserVO> getSpaceUserList(SpaceQueryRequest spaceQueryRequest);

    /**
     * spaceUser 转 vo
     */
    SpaceUserVO SpaceUserToVo(SpaceUser spaceUser);

    /**
     * 集合 spaceUser转vo
     */
    List<SpaceUserVO> spaceUserListToVo(List<SpaceUser> spaceUserList);

    /**
     * 获取团队单个空间成员

     */
    SpaceUserVO getSpaceUser(SpaceQueryRequest spaceQueryRequest);
}
